package com.yourenbang.lingyun.transaction.web.service.fund.fundopt;

import com.yourenbang.lingyun.core.message.Result;
import com.yourenbang.lingyun.domain.FundAccount;
import com.yourenbang.lingyun.transaction.web.domain.dto.ChangeFundAccountV2DTO;

/**
 * 加帐冲正
 *
 * 场景举例:
 *  1、对盟友资金账户减帐(可提现-,收益-),平台或boss加帐账户加帐(可提现+)
 *  2、对商户资金账户减帐(可提现-,收益-),平台或boss加帐账户加帐(可提现+)
 *
 *  与 `加帐冲正` {@link FundOptSubtractService}的区别:
 *  (1) 用途不同 `资金冲正`用于当打款方(平台方、boss方)将打款资金追回时使用,`提现减帐` 用于对盟友、商户可提现资金扣除
 *  (2) boss、平台方操作资金账户不同 `资金冲正`操作加帐账户,`提现减帐`操作提现账户
 */
public interface FundOptReversalService {
    Result reversal(FundAccount fromFundAccount, FundAccount toFundAccount, ChangeFundAccountV2DTO changeFundAccountDTO);
}
